package org.netty;

import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;
import io.netty.util.ReferenceCountUtil;
import io.netty.buffer.ByteBuf;


public class App  extends ChannelInboundHandlerAdapter 
{
	
	@Override
	public void channelRead(ChannelHandlerContext ctx,Object msg){		
		ByteBuf in = (ByteBuf) msg;
	    try {
	        while (in.isReadable()) {
	            System.out.print((char) in.readByte());
	            System.out.flush();
	        }
		}finally{
			ReferenceCountUtil.release(msg);
		}
	}
	
	@Override
	public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause){
		cause.printStackTrace();
		ctx.close();
    }
	
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
    }
}
